Anmerkung: Mögliche Ungenauigkeiten, da die Daten von Papier Akten übertragen wurden
OCC = Occurrence
0. Beschreibung des Datensatzes
Der Datensatz crime data from 2020 to present enthält alle Berichte über beim Los Angeles Police Department (LAPD) registrierte Vorfälle in der Stadt Los Angeles (USA) vom 01.01.2020 bis zum 14.10.2024.
Dabei sind Informationen über die Tat, wie bis zu vier Tatbestände, die verwendete Tatwaffe, Tatzeitpunkt, Tatort, sowie eine Beschreibung der Art von Umgebung angegeben. Der Tatort ist dabei laut Metadaten auf den nächsten Hunderterblock gerundet, um die Anonymität zu wahren. Über das Opfer ist dabei das Alter, das Geschlecht und die Abstammung bekannt. Wobei als Abstammung Beschreibungen wie “Weiß”, “Schwarz”, “Chinesisch” oder ähnliches verwendet wird. Zusätzlich gibt es eine Spalte für den Modus Operandi, welcher meist Details über die Straftat oder den Täter enthält.
1. Definition/Formulierung der Fragestellung
Aufgabenstellung (10 Pkt.) X
Definieren Sie eine Sie interessierende bzw. interessante Fragestellung im Zusammenhang mit dem Datensatz:
Was interessiert Sie an dem Datensatz? X
Welche spezifische Fragestellung würden Sie gern mit Hilfe des Datensatzes beantworten? X
Was erwarten Sie, angesichts Ihrer Fragestellung, bezüglich des Datensatzes? X
Welche Klassen von Straftaten werden wie häufig begangen?
Anzahl Proportional zu Schweregrad
Viele Diebstahle & andere Straftaten um Geld zu beschaffen
Welche Stadtteile sind besonders betroffen?
Ärmere Stadtteile
Stadtteile mit Gang Gebieten
Welche Stadtteile haben besonders viele Straftaten mit Gang Einfluss?
Kenne mich zu schlecht in LA aus
Nicht Downtown & Beverly Hills (wohlhabendere Gegenden)
Welche Bevölkerungsgruppe ist am meisten gefährdet? (Abhängig von Alter, Geschlecht, Abstammung)
# Welche Typen sind enthalten?sapply(crimes.df.raw, class)
DR_NO Date Rptd DATE OCC TIME OCC AREA
"numeric" "character" "character" "character" "character"
AREA NAME Rpt Dist No Part 1-2 Crm Cd Crm Cd Desc
"character" "character" "numeric" "numeric" "character"
Mocodes Vict Age Vict Sex Vict Descent Premis Cd
"character" "numeric" "character" "character" "numeric"
Premis Desc Weapon Used Cd Weapon Desc Status Status Desc
"character" "numeric" "character" "character" "character"
Crm Cd 1 Crm Cd 2 Crm Cd 3 Crm Cd 4 LOCATION
"numeric" "numeric" "numeric" "logical" "character"
Cross Street LAT LON
"character" "numeric" "numeric"
Der Datensatz enthält eine Spalte mit MoCodes, welche eine Liste an Zahlen enthält. Diese Zahlen sind IDs des Mocodes Datensatzes, welcher den Modus Operandi als Beschreibung enthält.
Format des Datums
Das Datum ist standardmäßig im Format MM/DD/YYYY HH:MM:SS AM/PM angegeben. Jedoch enthalten die Datumsspalten keine Uhrzeit, diese ist, wenn vorhanden, separat angegeben.
Charfälschlicherweise als Datentyp
Die folgenden Datentypen sind fäschlicherweise als Char abgespeichert:
Spaltenname
Spaltenbeschreibung
Passender Datentyp
Date Prtd
Meldedatum
Date
Date OCC
Verbrechensdatum
Date
Time OCC
Verbrechensuhrzeit
Integer
Area
Zugeordneter Bereich
Integer
Rpt Dist No
Bezirk des Verbrechens
Integer
Mocodes
Liste an Modus Operandi Codes
List
Spalten mit fehlenden Werten (NAs)
In manchen Spalten befinden sich NAs, dazu gehören: - Es existieren NAs in manchen Spalten
Weapon
Weapon Descd
Crime Codes –> nicht alle Taten
Überprüfung Aussagen der Metadaten:
Crm Cd should be the same as Crm Cd 1
Crm Cd 1 sollte die gleichen Werte wie Crm Cd haben:
Crm Cd
Indicates the crime committed. (Same as Crime Code 1)
Es gibt aber 1956 unterschiedliche Werte –> todo analyse später
Part 1-2 Weg löschen ?!
Area = Area Name ?!
Premise Cd = Premise Desc ?!
Weapon Use Cd = Weapon Desc ?!
3. Transformation & Bearbeitung
Aufgabenstellung (15 Pkt.)
Umcodierung von Daten, z.B. numerisch in kategorial
Subsetting der Daten
Joining von Datentabellen - falls nötig. Welcher Join ist notwendig? Warum?
Übersicht der transformierten Daten. Sie können hierzu Hilfsmittel wie glimpse(), skim() und head() benutzen, um Ihre Erläuterungen zu veranschaulichen.
Sind die sich ergebenden Daten so, wie Sie es erwartet haben? Warum oder warum nicht?
Aufbereitung / Umcodierung
# Aufbereitung der Liste mit Codes zur Zuordnung der Modus Operandicodes_to_numeric <-function(x) {if (is.na(x)) {return(NA) } else {return(as.numeric(strsplit(x, " ")[[1]])) }}# Transformation der Daten zu sinnvollen Datentypencrimes.df <-transform(crimes.df.raw,`Date Rptd`=as.Date(substr(`Date Rptd`, 1, 10), format ="%m/%d/%Y"),`DATE OCC`=as.Date(substr(`DATE OCC`, 1, 10), format ="%m/%d/%Y"),`TIME OCC`=as.integer(`TIME OCC`),`AREA`=as.integer(`AREA`),`Rpt Dist No`=as.integer(`Rpt Dist No`),`Crm Cd`=as.integer(`Crm Cd`),`Mocodes`=lapply(Mocodes, codes_to_numeric))
crmCd.diff <-which(crimes.df["Crm Cd"] != crimes.df["Crm Cd 1"])length(crmCd.diff)
[1] 1956
# Überprüfen, ob die Spalte nur NAs enthältif (all(is.na(crimes.df[["Crm Cd 4"]]))) { crimes.df[["Crm Cd 4"]] <-NULL}
# Löschen von Part 1-2# Todo Begründungcrimes.df[["Part 1-2"]] <-NULL
In Klassifizierung der Straftaten sind nicht alle Straftaten enthalten
missing_codes <- crimes.df %>%anti_join(crmcd.categories, by =c("Crm Cd"="Crm Cd")) %>%select(`Crm Cd`, `Crm Cd Desc`) %>%distinct()
missing_categories <-read_csv("missing_categories.csv")# print(missing_categorie, n = nrow(missing_categorie))
DR_NO codes_str
1 190326475 NA
2 200106753 1822, 1402, 344
3 200320258 344, 1251
4 200907217 325, 1501
5 220614831 1822, 1501, 930, 2004
6 231808869 1822, 100, 930, 929
meanings_str
1 NA
2 Stranger, Evidence Booked (any crime), Removes vict property
3 Removes vict property, Victim was a student
4 Took merchandise, Other MO (see rpt)
5 Stranger, Other MO (see rpt), Unauthorized use of victim's credit/debit card or number, Suspect is homeless/transient
6 Stranger, Suspect Impersonate, Unauthorized use of victim's credit/debit card or number, Unauthorized use of victim's bank account information
Subsetting
Area
Geschlecht
Abstammung
Art des Crimes
Übersicht des Dataframes
Fazit - Transformation & Bearbeitung
4. Geeignete Visualisierung und Aggregation der Daten
Aufgabenstellung (15 Pkt.)
Fassen Sie die Daten in einer geeigenten Form zur Beantwortung Ihrer formulierten Fragestellung zusammen. Ziehen Sie auch geeignete Visualisierungen der transformierten und/oder aggregierten Daten heran, um Ihre Aussagen entsprechend zu untermauern oder zu veranschaulichen.
Hier könne Sie auch geeignete statistische Verfahren bzw. Modellierungen nutzen, falls diese Ihnen bezüglich Ihrer Fragestellung weiterhelfen.
Welche Klassen von Straftaten werden wie häufig begangen?
Anzahl Proportional zu Schweregrad
Viele Diebstahle & andere Straftaten um Geld zu beschaffen
# Bibliothek ladenlibrary(leaflet)# Eine interaktive OpenStreetMap-Karte erstellenleaflet(crimes.df.no_id_theft) %>%addTiles() %>%# Standard-OSM-KartesetView(lng =-118.2437, lat =34.0522, zoom =9) %>%# Ansicht auf Los AngelesaddCircleMarkers(~LON, ~LAT,radius =5,color ="blue",stroke =FALSE,fillOpacity =0.8,popup =~paste("ID:", `Crm Cd Desc`) ) # Popup mit der DR_NO ID